<template>
  <div class="prize">
    <swiper
      id="swiperBox"
      :options="swiperOption"
      ref="mySwiper"
    >
      <swiper-slide class="swiper-slide">
        <img
          class="arrowDown"
          @click="check"
          src="../assets/img/arrowDown.png"
          alt=""
        >
      </swiper-slide>
      <swiper-slide class="swiper-slide">2</swiper-slide>
      <swiper-slide class="swiper-slide">
        <van-button
          type="primary"
          @click="move"
        >恢复滑动</van-button>
      </swiper-slide>
      <swiper-slide class="swiper-slide">
        <van-button
          type="primary"
          @click="backHome"
        >回到首页</van-button>
      </swiper-slide>
    </swiper>
  </div>
</template>

<script>

import { swiper, swiperSlide } from 'vue-awesome-swiper'

export default {
  name: 'fullscreen',
  data () {
    return {
      list: [], //轮换列表
      swiperOption: {
        notNextTick: true,//notNextTick是一个组件自有属性，如果notNextTick设置为true，组件则不会通过NextTick来实例化swiper，也就意味着你可以在第一时间获取到swiper对象，假如你需要刚加载遍使用获取swiper对象来做什么事，那么这个属性一定要是true
        direction: 'vertical',//水平方向移动
        initialSlide: 0,//设置初始索引值
        speed: 200,//切换速度
        effect: 'slide',//切换模式
        grabCursor: true,//鼠标覆盖Swiper时指针会变成手掌形状，拖动时指针会变成抓手形状
        setWrapperSize: true,//Swiper使用flexbox布局(display: flex)，开启这个设定会在Wrapper上添加等于slides相加的宽或高，在对flexbox布局的支持不是很好的浏览器中可能需要用到。
        autoHeight: true,//自动高度。设置为true时，wrapper和container会随着当前slide的高度而发生变化
        slidesPerView: 1,//设置slider容器能够同时显示的slides数量(carousel模式)。可以设置为数字（可为小数，小数不可loop），或者 'auto'则自动根据slides的宽度来设定数量。loop模式下如果设置为'auto'还需要设置另外一个参数loopedSlides。
        mousewheel: true,//开启鼠标滚轮控制Swiper切换。可设置鼠标选项，默认值false
        mousewheelControl: true,//同上
        height: window.innerHeight, // 高度设置，占满设备高度
        resistanceRatio: 0,//抵抗率。边缘抵抗力的大小比例。值越小抵抗越大越难将slide拖离边缘，0时完全无法拖离。本业务需要
        observer: true, //修改swiper自己或子元素时，自动初始化swiper
        observeParents: true,//修改swiper的父元素时，自动初始化swiper
        onSlideChangeEnd: (swiper) => {
          let index = swiper.activeIndex;
          if (index == 2) {
            this.$toast('请点击恢复滑动按钮下滑');
            swiper.lockSwipes();
          }
        }
      }
    }
  },
  created () {
    setTimeout(() => {
      this.swiper.update();
    }, 20);
  },
  // 如果你需要得到当前的swiper对象来做一些事情，你可以像下面这样定义一个方法属性来获取当前的swiper对象，同时notNextTick必须为true
  computed: {
    swiper () {
      return this.$refs.mySwiper.swiper;
    }
  },
  methods: {
    check () {
      this.swiper.slideNext();
    },
    move () {
      this.swiper.unlockSwipes();
    },
    backHome () {
      this.$router.replace({ name: 'home' });
    }
  },
  components: {
    swiper,
    swiperSlide
  }
}
</script>

<style scoped>
.swiper-slide {
  font-size: 24px;
  text-align: center;
  line-height: 100px;
}
.swiper-slide:nth-child(2n) {
  background: skyblue;
}
.swiper-slide:nth-child(2n-1) {
  background: #000000;
}

.arrowDown {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -7.5%;
  width: 15%;
  animation: arrowDown 1s linear infinite;
}
@keyframes arrowDown {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -30px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
</style>